package primary.String;

import java.util.ArrayList;
import java.util.List;

/**
 * @Author Elephas
 * @Date 2022/1/7
 **/
/*
    整数反转
 */
public class Reverse {
    public static void main(String[] args) {

        final int test01 = 1534236469;
        final int MIN = -2147483648;
        System.out.println(-1*MIN);
        reverse(MIN);
    }
    /*
        解法一：将x按十进制每个字符转储，然后逆序
     */
    public static int reverse(int x){
        final int MIN = -2147483648;
        boolean flag = x>0? true:false;
        if(x==0)
            return 0;
        // if(x==MIN)
        //     return 0;
        List<Integer> list = new ArrayList<>();
        // x 取绝对值
        if(!flag){
            x=-x;
        }
        while(x>0){
            list.add(x%10);
            x=x/10;
        }//结束时x是0

        for (int i = 0; i < list.size(); i++) {
            if ((x * 10 + list.get(i)) / 10 != x) {
                // 溢出
                return 0;
            } else {
                x = x * 10 + list.get(i);
            }
        }
        return  flag? x:-x;

    }
    /*
        抄份答案
     */
    public int reverse2(int x){
        int res = 0;
        return 1;
    }
}
